const reg = /\^\_\^\(.*\)/g
function getName(str) {
  return str.replace('^_^(', '').split('=')[0].split(' ')[1]
}

function createTemplate(str) {
  const dealStr = str.replace('^_^(', '');
  return `
  ${dealStr.substring(0, dealStr.length - 1)}
  ${getName(str)}._this = this
  ${getName(str)} = new this.HandleProxy(${getName(str)})
  this.${getName(str)} = ${getName(str)}
  `
}

module.exports = function(code) {
  const matchList = code.match(reg);
  matchList && matchList.forEach(element => {
    code = code.replace(element, createTemplate(element))
  });
  return code;
}